Advertisements are an important means for generating revenue for Web sites on the Internet. Typically, Web site operators allow advertisers to place advertisements on their Web sites for a fee, thereby generating revenue for the Web site. Advertisers have traditionally used visual advertisements, such as banner advertisements, in conjunction with Web sites to help sell their products or services. Such advertisements can, however, either be suppressed or ignored by recipient end-users. Advertisers also include audio advertisements within Web pages. The advertiser must include the audio advertisements within the Web page prior to distributing the Web page to the end-user.
Conventionally, delivery of audio advertisements to end-users is done within Hyper Text Markup Language (HTML) text, the language used to create Web pages at the time of creation. HTML uses a variety of tags or commands that form the content and structure of a Web page. In conventional systems, advertisers insert standard audio tags within the HTML text prior to distribution to a data communications device or a client computer. When a client receives a requested Web page, the client executes the HTML instructions associated with the Web page. When the client computer executes the audio tags within the HTML text, the audio tags instruct the client's Web browser to access the audio content associated with the Web page.
Data, such as HTML text, are delivered over computer and communications networks, such as the Internet, using various data communications protocols. One common protocol in widespread use that provides for a reliable exchange of information between computer systems in such a network is the Transmission Control Protocol or TCP. TCP is a connection oriented protocol that allows two computer systems to each maintain a connection state for a communications session that uses an underlying protocol such as the Internet Protocol (IP) at the network layer to deliver packets between the two computer systems involved in the communications session. The TCP connection state maintained by each computer system supports reliable delivery of the packets by detecting, for example, loss or corruption of a particular packet in the communications session, the arrival of packets out of order from the order in which they were sent from the originating computer system, or the arrival of duplicate packets that might be received by the computer system involved in a TCP communications session.
Each packet transmitted as part of the TCP communications session between the computer systems includes a TCP header portion that identifies, among other things, connection information for that packet. For example, the connection information includes sequence number information that identifies the current byte count of bytes transmitted from a computer system. In another example, the connection information also includes acknowledgment number information that provides an acknowledgment to the other computer system of how many bytes have actually been received by a computer system. Accordingly, a computer system involved in a TCP communications session can use acknowledgment and sequence number information to detect corrupted or lost data in the communications session.
If a computer system involved in a TCP communications session transmits a packet containing a valid TCP header and that packet experiences corruption (e.g., an error or change in the packet information is introduced during its transmission) as it travels through the computer network from the sending computer system to a recipient computer system, the communications session state maintained by the sending and recipient computer systems can be used by TCP to detect this disruption using the connection information. It may be the case, for example, that a noisy transmission link over which the packet traveled on route to the recipient computer system altered one or more bits settings within the packet or introduced additional data into the packet or removed existing data within the packet. As a result, the recipient computer system might detect a checksum error or alternatively, might detect that the sequence number specified in the TCP header for that packet does not properly correspond with the number of bytes received in a packet.